package com.icode.dao;

import com.icode.core.dto.house.*;
import com.icode.core.model.house.*;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: SunKai
 * Date: 14-10-30
 * Time: 下午11:30
 * To change this template use File | Settings | File Templates.
 */
public interface HouseDao extends EntityDao {

    List<Equipment> findEquipmentsByType(EquipmentType equipment);

    void saveOrUpdateEquipmentByGuid(EquipmentDTO equipmentDTO);

    void saveOrUpdateHouseBase(HouseBase houseBase);

    void saveOrUpdateHouseBaseByGuid(HouseBase houseBase, String guid);

    List<HouseBase> findHouseBase(String currentPage);

    Object findTotalPage(Class clazz);

    void deleteHouseBaseImage(HouseBase houseBase);

    void deleteHouseBase(HouseBase houseBase);

    void deleteUploadImageByGuid(String guid);

    List<BuildingType> findBuildingTypeByHouseBase(HouseBase houseBase);

    List<HouseBase> findHouseBaseByTitle(String title);

    List<HouseBase> findAllApartment();

    List<HouseBase> findAllHouseBase(ProductType productType);

    List<HouseInfo> findHouseInfoByBuildingType(String  buildingTypeGuid);

    List<HouseBaseImage> findHouseBaseImageByHouseBaseId(String houseBaseId);

    List<HouseBase> findHouseBaseByMoreCondition(String area, String price, String productType,String theme);


    BuildingType findBuildingTypeByGuid(String buildingGuid);

    void deleteBuildingTypeImageByGuid(UploadImage uploadImage);

    void deleteObject(Object object);

    List<HouseBaseDTO> loadByParam(HouseParamDTO houseParamDTO);

    List<HouseBase> findHouseByProductType(String productType);

    List< FirstBanners> findFirstBanners(UploadImage image);

    BannerForApp findSecondBannerByImage(String imgGuid);

    void deleteAgreementByHouseInfo(HouseInfo houseInfo);

    Agreement findAgreementByHouseInfo(HouseInfo houseInfo);

    Object findTotalPageByStatus(Class clazz, String status);

    void deleteUploadImageByGuidForHouseInfo(String imgGuid);

    void deleteUploadHouseExtraFeeByGuid(String guid);

    List<HouseInfo> findhouseInfoByhouseBaseArea(String houseBaseArea);

    void deleteByLogic(boolean isActive,String guid);

    void deleteHouserhouseInfoImages(HouseInfo houseInfoFound);
}
